package com.athuahua.security.controller;

import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import reactor.core.publisher.Mono;

/**
 * @Author: huahua
 * @Date: 2024/12/11 0011
 * @Time: 13:37
 * @Description:
 *
 */
@RestController
public class HelloController {
    /**
     * 方法级别的权限控制需要 @EnableReactiveMethodSecurity 注解
     * @return
     */
    //可以支持复杂的SPEL表达式
    @PreAuthorize("hasRole('admin')")  //权限控制 角色
    @GetMapping("/hello")
    public Mono<String> hello(){


        return Mono.just("hello world");
    }




    @PreAuthorize("hasRole('hahaha')") //权限控制 权限
    @GetMapping("/world")
    public Mono<String> world(){


        return Mono.just("world!!");
    }
}
